详情页展示评价信息


1.请求方式

选项 方案
请求方法 POST
请求地址 /comments/(?P\d+)/

2.请求参数:查询参数

参数名 类型 是否必传 说明
sku_id int 商品SKU编号

3.响应结果:JSON

字段 说明
code 状态码
errmsg 错误信息
comment_list[ ] 评价列表
username 发表评价的用户
comment 评价内容
score 分数
{
    "code":"0",
    "errmsg":"OK",
    "comment_list":[
        {
            "username":"itcast",
            "comment":"这是一个好手机!",
            "score":4
        }
    ]
}

4.后端接口定义和实现

class GoodsCommentView(View):
    """订单商品评价信息"""

    def get(self, request, sku_id):
        # 获取被评价的订单商品信息
        order_goods_list = OrderGoods.objects.filter(sku_id=sku_id, is_commented=True).order_by('-create_time')[:30]
        # 序列化
        comment_list = []
        for order_goods in order_goods_list:
            username = order_goods.order.user.username
            comment_list.append({
                'username': username[0] + '***' + username[-1] if order_goods.is_anonymous else username,
                'comment':order_goods.comment,
                'score':order_goods.score,
            })
        return http.JsonResponse({'code':RETCODE.OK, 'errmsg':'OK', 'comment_list': comment_list})

5.渲染商品评价信息

<div @click="on_tab_content('comment')" class="tab_content" :class="tab_content.comment?'current':''">
    <ul class="judge_list_con">
        <li class="judge_list fl" v-for="comment in comments">
            <div class="user_info fl">
                <b>[[comment.username]]b>
            div>
            <div class="judge_info fl">
                <div :class="comment.score_class">div>
                <div class="judge_detail">[[comment.comment]]div>
            div>
        li>
    ul>
div>
<li @click="on_tab_content('comment')" :class="tab_content.comment?'active':''">商品评价([[ comments.length ]])li>
<div class="price_bar">
    <span class="show_pirce">¥<em>{{ sku.price }}em>span>
    <a href="javascript:;" class="goods_judge">[[ comments.length ]]人评价a>
div>

提示:订单商品评价完成后,一个订单的流程就结束了,订单状态修改为已完成